跳到主要内容

案例3.5 视频教程

3.5.mov (152.8MB)题目:编程实现线性判别分析,并给出西瓜数据集3.0α上的结果。
步骤1:在“项目模板”中找到周志华习题,打开第三章线性模型习题案例3.5,创建模板。
步骤2:在“CSV上传模块”上传data数据,一般为csv格式。这里用到的是西瓜数据集3.0α。
版。
步骤3:在全部组件列表搜索“标签编码”模块,拖到操作界面内,
因为上传的数据特征为“色泽 根蒂 敲声 纹理 脐部 触感”等,需要转化为数字,“标签编码(LabelEncoder)”可以通过设置“字段设置”中的“目标字段”,来把特征取值转化为数字。
依次拖出“标签编码”,在字段设置的目标字段中设置“色泽”“根蒂”“敲声”“纹理”“脐部”“触感”,即可将数据中的字符串进行编码,
步骤4:在全部组件列表搜索“线性判别分析”linear discrimination analysis模块,组件ID为1731,在算法设计的机器学习中,“分类”选项卡下。在“参数设置”中设置特征字段“色泽,根蒂,敲声,纹理,脐部,触感,密度,含糖率”,“标识字段”设置为“好瓜”。可勾选“store covariance”存储协方差。“tol”设置为0.0001.较小的tol参数可以尽量避免相同的输入数据输出略微不同的结果。
Solver中选择svd求解器。线性判别分析下一般默认求解器为“svd”,它可以执行分类和变换,并且不依赖于协方差矩阵的计算。Lsqr求解器是仅使用于分类的高效算法。本征求解器基于类间散度到类内散度比的优化,它可以用于分类和转换,但是需要计算协方差矩阵,因此可能不太适合具有大量特征的情况。
“线性判别分析”是一个具有线性决策边界的分类器,通过将类的密度拟合到数据并且使用贝叶斯规则生成的。假设所有类别共享相同的协方差矩阵,则该模型将高斯密度拟合到每个类别。拟合模型还可以通过将其投影到最有区别的方向来减少输入的维数。
步骤5:在全部组件列表搜索“模型预测”,把经过标签编码数字化的数据作为待预测数据,把经过线性判别分析的数据输出为输入模型,“字段设置”与待预测数据的特征字段相同。
步骤6:也可以时手动用python实现线性判别分析算法。
步骤7:在全部组件列表搜索“二次判别分析”Quadratic Discriminant Analysis模块。跟线性判别分析模块一样,字段设置相同,参数设置可不做更改。拖出“模型预测”模块,设置线性判别分析。
二次判别分析是通过将类别条件密度拟合到数据并使用贝叶斯规则生成具有二次决策边界的分类器。该模型将高斯密度拟合到每个类别。